create or replace 
type Vector3D as object
(
    x binary_float,
    y binary_float,
    z binary_float,
    
    constructor function Vector3D return self as result
);
/

create or replace 
type body Vector3D as

  constructor function Vector3D return self as result as
  begin
    self.x := 0.0;
    self.y := 0.0;
    self.z := 0.0;
    
    return;
  end Vector3D;

end;
/